﻿namespace QuickMail.DataModels
{
    using System.Xml.Serialization;

    using QuickMail.View.Controls;

    [XmlRoot("Language")]
    public class LanguageXml
    {
        [XmlAttribute]
        public string Value = "English";

        //[XmlElement("GeneralElements")]
        //public GeneralElementsLang GeneralElements = new GeneralElementsLang();

        [XmlElement("WelcomeDialog")]
        public WelcomeDialogLang WelcomeDialog = new WelcomeDialogLang();

        [XmlElement("MainWindow")]
        public MainWindowLang MainWindow = new MainWindowLang();

        [XmlElement("AboutWindow")]
        public AboutWindowLang AboutWindow = new AboutWindowLang();

        [XmlElement("CommonSettingsWindow")]
        public CommonSettingsWindowLang CommonSettingsWindow = new CommonSettingsWindowLang();

        [XmlElement("ConnectSettingsWindow")]
        public ConnectSettingsWindowLang ConnectSettingsWindow = new ConnectSettingsWindowLang();

        [XmlElement("PropertyWindow")]
        public PropertyWindowLang PropertyWindow = new PropertyWindowLang();

        [XmlElement("LetterBalloon")]
        public LetterBalloonLang LetterBalloon = new LetterBalloonLang();

        [XmlElement("TaskbarIconMenu")]
        public TaskbarIconMenuLang TaskbarIconMenu = new TaskbarIconMenuLang();
    }

    //public class GeneralElementsLang
    //{
    //}

    public class MainWindowLang
    {
        public string Title = "QuickMail - When it is important that the inside.";
        public string ConnectSettings = "Configuring the connection";

        public string CommonSettings = "Common settings";
        public string About = "About program";

        public string RulesForFolders = "Rules of mail processing";
        public string ListOfMails = "List of letters";

        public string PropertyFolder = "PROPERTIES".ToUpper();
        public string PropertyFolderTt = "Properties of rule";
        public string DeleteFolder = "Delete rule";
        public string AddFolder = "Add rule";
        public string OpenFolder = "Open folder";
        public string OpenAttachmentsFolder = "OPEN FOLDER";

        public string FromColumn = "From";
        public string ToColumn = "To";
        public string SubjectColumn = "Subject";
        public string AttachmentsColumn = "Attachments";
        public string DateColumn = "Date";

        public string Next = "NEXT".ToUpper();
        public string Previous = "PREVIOUS".ToUpper();
        public string Delete = "DELETE".ToUpper();

        public StatusBarText Status = new StatusBarText();
    }

    public class WelcomeDialogLang
    {
        public string Title = "Welcome to QuickMail!";
        public string QuestionConnectionSettings =
            "To use the program, we need to configure the connection to the e-mail. \n"
            + "Would you like to configure the connection now?";

        public string Configure = "Please configure the connection to the mail.";
        public string EmailWatermark = "Your email";
        public string PasswordWatermark = "Password to email";
        public string Wait = "Please wait...";
        public string ConfiguringTheConnection = "Configuring the connection...";

        public string Affirmative = " yes, of course! ";
        public string Negative = " no, thanks. ";

        public string Congratulations = "Congratulations!";
        public string SuccessComplete = "Setting up a connection is successfully completed!";

        public string Sorry = "Sorry :(";
        public string FailureComplete =
            "We were unable to automatically configure the connection. \nTry configure settings manually.";
    }

    public class StatusBarText
    {
        public string WaitConnect = "Please wait...  Checking connection...";
        public string ConfigureConnect = "Please configure the connection to the mail.";
        public string SuccessConnect = "Connection is successfully established!";
        public string ErrorConnect = "Connection is not established!";
    }
    public class AboutWindowLang
    {
        public string Title = "About program";

        public string Description = "QuickMail - it's a free email client "
                                    + "\nthat allows you to quickly share files by e-mail."
                                    + "\nSend files via e-mail by simply copying them into folders."
                                    + "\n\nQuickMail - When it is important that the inside.";

        public string DetailedInformation = "Detailed information";
        public string OtherResources = "The program uses the following " 
                                        + "\nthird-party libraries and resources:";

        public string Gratitude = "Author thanks all developers of free libraries and resources."
                                  + "\nWithout your works, I would never have been able develop this program.";

        
        public string Version = "Software version: ";
        
        public string Author = "Author: Anton Ivaschenko © 2014";
    }

    public class CommonSettingsWindowLang
    {
        public string Title = "Setting the program";
        public string SelectLang = "Choose your language:";

        public string Period = "Checks mails period (sec):";
        public string PeriodTt = "Period should be longer than 30 sec.";
        public string MaxLetterSize = "Max size of letter (MB):";
        public string MaxLetterSizeTt = "Limit letter size from 1 to 500 MB (see. configure your mail server)";
        public string ShowNotifications = "Show notifications:";
        public string ShowNotificationsTt = "Show notifications when receiving or sending emails.";
        public string SignedLetters = "Signed of letters:";
        public string SignedLettersTt = "This text will be added at the end of each message";
        public string Apply = "Apply";
        public string Cancel = "Cancel";
    }

    public class ConnectSettingsWindowLang
    {
        public string Title = "Setting connection properties";
        public string StandartSetup = "Standart setup";
        public string ExtendedSetup = "Extended setup";
        public string Next = "Next";
        public string Apply = "Apply";
        public string Finish = "Finish";
        public string Cancel = "Cancel";

        public string WaitSetup = "Please wait, configuring connection...";
        public string SuccessSetup = "Congratulations! Setting up a connection is successfully completed!";

        public string FullName = "Your full name:";
        public string FullNameTt = "Enter a name that will be visible to the recipient";
        public string Email = "E-mail:";
        public string EmailTt = "Enter e-mail from which the messages will be sent";
        public string Password = "Password:";
        public string PasswordTt = "Enter the password of the e-mail";

        public string Server = "Server:";
        public string GetServerTt = "Enter the server name, for example: imap.gmail.com";
        public string SendServerTt = "Enter the server name, for example: smtp.gmail.com";
        public string Port = "Port number:";
        public string GetPortTt = "Enter the server port, for example: 993 or 143";
        public string SendPortTt = "Enter the server port, for example: 465, 25 или 587";
        public string SafetyConnection = "Use SSL";
        public string SafetyConnectionTt = "Encrypt connection";
        public string Status = "Status:";
        public string Encryption = "Encryption:";

        public string GetServerType = "Incoming mail server:";
        public string SendServerType = "Outgoing mail server: SMTP";
        public string Authentication = "Authentication:";

        public string WaitConnection = "Please wait...  Checking connection...";
        public string SuccessConnection = "Connection is successfully established!";
        public string ErrorConnection = "Connection is not established!";

        public string TestConnection = "Test connection";
    }

    public class PropertyWindowLang
    {
        public string Title = "Properties of the rule";

        public string Path = "Path to the folder:";
        public string Browse = "Browse";
        public string RuleName = "Name of the rule:";
        public string Action = "Action:";
        public string NoneAction = "None";
        public string SendAction = "Send";
        public string ReceiveAction = "Receive";

        public string Subject = "Subject:";
        public string MailTo = "To:";
        public string MailToTt = "Enter e-mail address(es) of recipients through \",\" or \";\"";
        public string FilesTypes = "File types:";
        public string FilesTypesTt = "Enter the type or types of files through \",\" for example *.rar"
                                     + "\nIf empty, all the files are sent.";
        public string MessageText = "Message text:";
        public string MessageTextTt = "Write a message to the recipient.";

        public string MailFrom = "From:";
        public string MailFromTt = "Enter e-mail address(es) of senders through \",\" or \";\"";
        public string Replacement = "Action on match:";
        public string Rename = "Rename";
        public string Replace = "Replace";
        public string Skip = "Skip";
        public string SaveMessage = "Save to file";
        public string AddChildrens = "Add subfolders";

        public string Apply = "Apply";
        public string Cancel = "Cancel";
    }

    public class LetterBalloonLang
    {
        public string Sent = "The letter was sent";
        public string Received = "The letter was received";
        public string NotSent = "The letter has not been sent!";

        public string From = "From: ";
        public string To = "To: ";
        public string ReadLetter = "READ LETTER".ToUpper();
        public string OpenFolder = "OPEN FOLDER".ToUpper();
    }

    public class TaskbarIconMenuLang
    {
        public string Show = "Show window";
        public string Hide = "Hide window";
        public string Exit = "Exit";
    }
}